﻿/**
 * Create:admin 2023-07-04 17:39:48
 * description:YoursLC有源低代码 自定义扩展 此文件放置于wwwroot/self_js文件夹中
 */

layui.define(['jquery', 'table'], function (exports) {
	let table = layui.table;
	let $ = layui.$;

	var api = {
	    //编辑时锁定
		lockForEditing: function (_type) {

		},
		searchShow: function () {
			var display = $('#searchfield').css('display');
			if (display == 'none') {
				$("#searchfield").show();
				document.body.scrollTop = document.documentElement.scrollTop = 0;
			}
			else {
				$("#searchfield").hide();
			}
		},
		//控制list页面按钮状态
        setListButDisable: function (strDisable) {
			layui.device().mobile ? $("#batchDel").html('<i class="fa fa-trash-o"></i>删除') : $("#batchDel").html('<i class="fa fa-trash-o"></i>批量删除');
			if (strDisable == 'all' || strDisable.indexOf("[batchDel]") > -1) {
				$("#batchDel").attr("class", "layui-btn layui-btn-disabled layui-btn-sm");//禁用批量删除
				$("#batchDel").removeAttr("lay-event");
			}

			layui.device().mobile ? $("#mergeExport").html('<i class="fa fa-file-pdf-o"></i>导出') : $("#mergeExport").html('<i class="fa fa-file-pdf-o"></i>合并导出');
			if (strDisable == 'all' || strDisable.indexOf("[mergeExport]") > -1) {
				$("#mergeExport").attr("class", "layui-btn layui-btn-disabled layui-btn-sm");//禁用批量导出
				$("#mergeExport").removeAttr("lay-event");
			}

			layui.device().mobile ? $("#importExcel").html('<i class="fa fa-file-excel-o"></i>导入') : $("#importExcel").html('<i class="fa fa-file-excel-o"></i>数据导入');
			if (strDisable == 'all' || strDisable.indexOf("[importExcel]") > -1) {
				$("#importExcel").attr("class", "layui-btn layui-btn-disabled layui-btn-sm");//禁用数据导入
				$("#importExcel").removeAttr("lay-event");
			}

			layui.device().mobile ? $("#add").html('<i class="fa fa-plus"></i>新增') : $("#add").html('<i class="fa fa-plus"></i>新增数据');
			if (strDisable == 'all' || strDisable.indexOf("[add]") > -1) {
				$("#add").attr("class", "layui-btn layui-btn-disabled layui-btn-sm");//禁用数据新增
				$("#add").removeAttr("lay-event");
			}
		},
		//控制form页面按钮状态
		setFormButDisable: function (strDisable) {
            if (strDisable == 'all' || strDisable.indexOf("[print]") > -1) {
                $("#print").attr("class", "layui-btn layui-btn-disabled");//禁用打印
				$("#print").removeAttr("href");
            }
            if (strDisable == 'all' || strDisable.indexOf("[att]") > -1) {
                $("#att").attr("class", "layui-btn layui-btn-disabled");//禁用附件
				$('#att').unbind('click');
            }
            if (strDisable == 'all' || strDisable.indexOf("[edit]") > -1) {
                $("#edit").attr("class", "layui-btn layui-btn-disabled");//禁用保存
                $("#edit").removeAttr("lay-filter");
            }
            if (strDisable == 'all' || strDisable.indexOf("[next]") > -1) {
                $("#next").attr("class", "layui-btn layui-btn-disabled");//禁用转交
                $("#next").removeAttr("lay-filter");
            }
            if (strDisable == 'all' || strDisable.indexOf("[finish]") > -1) {
                $("#finish").attr("class", "layui-btn layui-btn-disabled");//禁用结束
                $("#finish").removeAttr("lay-filter");
            }
		},

		//导出文件
		downFile: function (url, fileName) {
			var xhr = new XMLHttpRequest();
			xhr.open('post', url, true);
			xhr.responseType = "blob";// 返回类型blob
			xhr.onload = function () {
				if (this.status === 200) {
					var blob = this.response;
					var reader = new FileReader();
					reader.readAsDataURL(blob);
					reader.onload = function (e) {
						var a = document.createElement('a');
						a.download = fileName;
						a.href = e.target.result;
						$("body").append(a);  // 修复firefox中无法触发click
						a.click();
						$(a).remove();
					}
				}
			};
			xhr.send()
		},

		//将所有主表控件（ID、Value和ControlType）Push到list中
		getControlValueList: function () {
		    var _list = [];
			_list.push({ ControlID: 'listid', ControlValue: $('#_listid').val(), ControlType: '1' });//listid
			_list.push({ ControlID: 'inContractNumber', ControlValue: $('#inContractNumber').val(), ControlType: '1' });//合同编号
			_list.push({ ControlID: 'inContractName', ControlValue: $('#inContractName').val(), ControlType: '1' });//合同名称
			_list.push({ ControlID: 'inContractCategory', ControlValue: $('#inContractCategory').val(), ControlType: '2' });//合同类别
			_list.push({ ControlID: 'inPrincipalName', ControlValue: $('#inPrincipalName').val(), ControlType: '1' });//主体名称
			_list.push({ ControlID: 'inContractAmount', ControlValue: $('#inContractAmount').val(), ControlType: '1' });//合同金额
			_list.push({ ControlID: 'inOperator', ControlValue: $('#inOperator').val(), ControlType: '1' });//经办人
			_list.push({ ControlID: 'inReceivedAmount', ControlValue: $('#inReceivedAmount').val(), ControlType: '1' });//已收金额（元）
			_list.push({ ControlID: 'inFinancialReview', ControlValue: $('#inFinancialReview').val(), ControlType: '1' });//财务审核
			_list.push({ ControlID: 'inAuditDate', ControlValue: $('#inAuditDate').val(), ControlType: '1' });//审核日期
			return _list;
		},

		//固定流程时根据流程编码设置控件读写状态 
		setStateByFlow: function (prcno) {
			//财务审核 步骤编码FinancialReview 序号2 
			if (prcno == 'FinancialReview') {
				$('#inContractNumber').attr('disabled','disabled');//合同编号
				$('#inContractNumber').attr('class','layui-input layui-disabled');//合同编号
				$('#inContractNumber').removeAttr('lay-verify');//合同编号
				$('#inContractName').attr('disabled','disabled');//合同名称
				$('#inContractName').attr('class','layui-input layui-disabled');//合同名称
				$('#inContractName').removeAttr('lay-verify');//合同名称
				$('#inContractCategory').attr('disabled','disabled');//合同类别
				$('#inContractCategory').removeAttr('lay-verify');//合同类别
				$('#inPrincipalName').attr('disabled','disabled');//主体名称
				$('#inPrincipalName').attr('class','layui-input layui-disabled');//主体名称
				$('#inPrincipalName').removeAttr('lay-verify');//主体名称
				$('#inContractAmount').attr('disabled','disabled');//合同金额
				$('#inContractAmount').attr('class','layui-input layui-disabled');//合同金额
				$('#inContractAmount').removeAttr('lay-verify');//合同金额
				$('#inOperator').attr('disabled','disabled');//经办人
				$('#inOperator').attr('class','layui-input layui-disabled');//经办人
				$('#inOperator').removeAttr('lay-verify');//经办人
				$('#inReceivedAmount').attr('disabled','disabled');//已收金额（元）
				$('#inReceivedAmount').attr('class','layui-input layui-disabled');//已收金额（元）
				$('#inReceivedAmount').removeAttr('lay-verify');//已收金额（元）
			}
			//登记 步骤编码new 序号1 
			if (prcno == 'new') {
				$('#inFinancialReview').attr('disabled','disabled');//财务审核
				$('#inFinancialReview').attr('class','layui-input layui-disabled');//财务审核
				$('#inFinancialReview').removeAttr('lay-verify');//财务审核
				$('#inAuditDate').attr('disabled','disabled');//审核日期
				$('#inAuditDate').attr('class','layui-input layui-disabled');//审核日期
				$('#inAuditDate').removeAttr('lay-verify');//审核日期
			}
		},

		//执行数据读取--使用后台返回的lists，为控件赋值
		setValueByList: function (lists) {
		    //主表
			if ($('#pu_tbid').val() == '_main') {
				for (var item in lists) {
					var _value = lists[item].ControlValue;
					var _id = lists[item].ControlID;
					var _type = lists[item].ControlType;
					var _list = lists[item].ListValue;
					if (_list == null) {
					     //读取单值
						//text文本框
						if (_type == "1") {
							$("#" + _id).val(_value);
						}
						//select下拉选择
						if (_type == "2") {
							$("select[name=" + _id + "]").val(_value);
							/* $("#" + _id).val(_value);*/
						}
						//checkbox复选框
						if (_type == "3") {
						}
						//radio单选框
						if (_type == "4") {
							$("input[name=" + _id + "]" + "[value='" + _value + "']").prop('checked', 'checked');
						}
						//img图片
						if (_type == "5") {
						}
					}
					else {
					    //数据联动
						var _controlid = "#" + _id;
						$("" + _controlid + "").empty(); //清空控件
					    if (_type == "2") {
                            $("" + _controlid + "").append(new Option('==请选择==', ''));
                        }
						$.each(_list, function (i, item) {
							$("" + _controlid + "").append(new Option(item.Text, item.Value));
						});
					}
				}
			}
            else {//子表
                var _starts = "#" + $('#pu_tbid').val() + "#" + $('#pu_rowid').val() + "#";
                var trList = $(".layui-table").find("tr");
                for (var i = 0; i < trList.length; i++) {
                    var tdArr = trList.eq(i).find("td");
					if (tdArr.eq(0).text().startsWith(_starts) && $('#pu_tbid').val() == 'tb_PaymentDetails2') {
						for (var item in lists) {
							var _list = lists[item].ListValue;
							var _value = lists[item].ControlValue;
							var _id = lists[item].ControlID.replace("v", "");//列序号如1、2、3...
							if (_list == null) {
								//读取单值
								if (lists[item].ControlType == "2") {
									tdArr.eq(parseInt(_id) + 2).find('select').val(_value);//下拉选择 错位（有复选框和序号）
								}
								else {
									tdArr.eq(parseInt(_id) + 2).find('input').val(_value);//错位（有复选框和序号）
								}
							}
							else {
								//数据联动
								if (lists[item].ControlType == "2") {
									tdArr.eq(parseInt(_id) + 2).find('select').empty();//错位（有复选框和序号）
									$.each(_list, function (i, item) {
										tdArr.eq(parseInt(_id) + 2).find('select').append(new Option(item.Text, item.Value));
									});
								}
							}
						}
					}
                }
            }
		},

		//弹出选择触发--弹出页面关闭后，将选择的Value赋值给触发弹出页面的input
		getValueFromPopUp: function (tbid, indexid, id) {
			var _tbid = $('#pu_tbid').val();//表id，主表为_main
			var _id = $('#pu_rowid').val();//子表数据主键
			var _indexid = $('#pu_indexid').val();//指标编码
			var _v = $('#pu_column').val();//第几列--子表弹出时有用
			var _value = $('#pu_value').val();//弹出页面选择的值
			var flag='';

			if (_tbid == '_main') {
				$("#" + _indexid + "").val(_value);
			}
			else {
			    var flag = '';
				var _starts = "#" + _tbid + "#" + _id + "#";
				var trList = $(".layui-table").find("tr");
				for (var i = 0; i < trList.length; i++) {
					var tdArr = trList.eq(i).find("td");
					flag = tdArr.eq(0).text();
					if (flag.startsWith(_starts) && _tbid == 'tb_PaymentDetails2') {
						tdArr.eq(parseInt(_v) + 2).find('input').val(_value);
					}
				}
			}
		},
		//某个子表table首行取数--增加行的Grid
		getFirstGridTable: function () {
		    var _list = [];
			var trList = $(".layui-table").find("tr");  //获取table下的所有tr
			for (var i = 0; i < trList.length; i++) {  //遍历所有的tr
				var tdArr = trList.eq(i).find("td"); //获取该tr下的所有td
				var flag = tdArr.eq(0).text();
				if (flag.startsWith('#tb_PaymentDetails2#') && flag.substr(-3) == '#0#') {
					var _row = { };
					_row.flag = flag;
					_row.v1 = tdArr.eq(3).find('select').val();//付款方式
					_row.v2 = tdArr.eq(4).find('input').val();//付款金额（元）
					_row.v3 = tdArr.eq(5).find('input').val();//付款日期
					_row.v4 = tdArr.eq(6).find('input').val();//发票
					_row.v5 = tdArr.eq(7).find('input').val();//发票
					_row.v6 = tdArr.eq(8).find('input').val();//备注
					_list.push(_row);
				}
			}
			return _list;
		},
		//某个子表table取数
		getCurrentGridTable: function (tbid, id) {
		    var _list = [];
			var trList = $(".layui-table").find("tr");  //获取table下的所有tr
			for (var i = 0; i < trList.length; i++) {  //遍历所有的tr
				var tdArr = trList.eq(i).find("td"); //获取该tr下的所有td
				var flag = tdArr.eq(0).text();
				if (flag.startsWith('#tb_PaymentDetails2#' + id + '#') && tbid =='tb_PaymentDetails2') {
					var _row = { };
					_row.flag = flag;
					_row.v1 = tdArr.eq(3).find('select').val();//付款方式
					_row.v2 = tdArr.eq(4).find('input').val();//付款金额（元）
					_row.v3 = tdArr.eq(5).find('input').val();//付款日期
					_row.v4 = tdArr.eq(6).find('input').val();//发票
					_row.v5 = tdArr.eq(7).find('input').val();//发票
					_row.v6 = tdArr.eq(8).find('input').val();//备注
					_list.push(_row);
				}
			}
			return _list;
		},
		//遍历子表table取数--可从多个子表取值
		foreachGridTable: function () {
		    var _list = [];
			var trList = $(".layui-table").find("tr");  //获取table下的所有tr
			for (var i = 0; i < trList.length; i++) {  //遍历所有的tr
				var tdArr = trList.eq(i).find("td"); //获取该tr下的所有td
				var flag = tdArr.eq(0).text();
				if (flag.startsWith('#tb_PaymentDetails2#')) {
					var _row = { };
					_row.flag = flag;
					_row.v1 = tdArr.eq(3).find('select').val();//付款方式
					_row.v2 = tdArr.eq(4).find('input').val();//付款金额（元）
					_row.v3 = tdArr.eq(5).find('input').val();//付款日期
					_row.v4 = tdArr.eq(6).find('input').val();//发票
					_row.v5 = tdArr.eq(7).find('input').val();//发票
					_row.v6 = tdArr.eq(8).find('input').val();//备注
					_list.push(_row);
				}
			}
			return _list;
		},
		//设置子表不可编辑
		setGridDisabled: function (grid) {
			var trList = $(".layui-table").find("tr");  //获取table下的所有tr
			for (var i = 0; i < trList.length; i++) {  //遍历所有的tr
				var tdArr = trList.eq(i).find("td"); //获取该tr下的所有td
				var flag = tdArr.eq(0).text();
				if (flag.startsWith('#tb_PaymentDetails2#') && grid =='tb_PaymentDetails2') {
					tdArr.eq(3).find('select').attr('disabled', 'disabled');//付款方式
					tdArr.eq(4).find('input').attr('disabled', 'disabled');//付款金额（元）
					tdArr.eq(5).find('input').attr('disabled', 'disabled');//付款日期
					tdArr.eq(6).find('input').attr('disabled', 'disabled');//发票
					tdArr.eq(7).find('input').attr('disabled', 'disabled');//发票
					tdArr.eq(8).find('input').attr('disabled', 'disabled');//备注
					tdArr.eq(9).find('button').attr('disabled', 'disabled');//右侧添加删除按钮
					tdArr.eq(9).find('button').attr('class', 'layui-btn layui-btn-disabled layui-btn-xs');
					tdArr.eq(9).find('button').removeAttr('lay-event');
				}
			}
		}

	};

	//暴露接口
	exports('ContractCollection', api);
});